Часть рынка жестких дисков и оптических накопителей принадлежит интерфейсу ATA/ATAPI (он же IDE), часть - SCSI. Изменит ли появление SATA расстановку сил?
Соперничество между SCSI- и ATA-интерфейсами идет уже давно. Последние ревизии ATA-стандарта показывают, что по своим функциональным возможностям он вплотную приближается к SCSI, но до полной победы еще далеко. SCSI, изначально создававшийся в соответствии с правилом «правой руки» (закрываем рукой цены и смотрим на товары), прочно обосновался на серверном рынке и уходить с него не собирается. ATA, напротив, задумывался как максимально дешевое решение для однопользовательских маломощных машин и несмотря на все усовершенствования и нововведения последних лет остается идеологически ущербным интерфейсом. Это похоже на попытку переделать Запорожец в Мерседес! С другой стороны, если возможности ATA покрывают твои потребности с головой, зачем платить больше?
SCSI, ATA, ATAPI, IDE, EIDE... В этом ворохе аббревиатур даже матерому специалисту не просто разобраться. Но мы попробуем :).
SCSI
SCSI-устройства имеют единую схему логической адресации, независящую от физической геометрии устройства, и высокоуровневую систему команд (прочитать сектор или группу секторов, начать воспроизведение аудиодиска и т.п.). Получив команду, устройство ставит ее в очередь и освобождает шину, а инициатор запроса (которым может быть как центральный процессор, так и другое SCSI-устройство) переключается на решение другой задачи. Обработав запрос, устройство вновь повторяет захват шины и пересылает данные инициатору, уведомляя его об этом через механизм прерываний. Таким образом, шина эффективно используется несколькими устройствами и время простоя центрального процессора сводится к минимуму.
Электрически SCSI-интерфейс представляет собой либо обыкновенный многожильный кабель, либо оптоволокно. На этот счет существует множество конкурирующих стандартов, подробно рассматривать которые не имеет смысла. Достаточно сказать, что физическая скорость передачи в последних версиях SCSI-стандарта полностью удовлетворяет потребности реально существующих устройств, оставляя солидный задел на будущее. Некоторые из электрических интерфейсов поддерживают длину кабеля до 25 метров и горячую замену устройств без выключения питания. Но утверждение, что все SCSI-диски можно перетыкать «на лету», неверно и чревато смертельными (для дисков) последствиями. Максимальное количество устройств на шине также различно и варьируется от одного электрического интерфейса к другому. В среднем на шину можно повестить 7 или 15 устройств, не сильно теряя в скорости передачи данных.
Для подключения SCSI-устройства к центральному процессору необходимо установить достаточно сложный (и поэтому весьма дорогостоящий) SCSI-контроллер, что несколько ограничивает сферу его применения.
ATA
Уже первая версия стандарта обнаруживает много общих черт со SCSI. Это и интегрированный контроллер, и унифицированный набор команд (пускай не такой богатый, как в SCSI), и возможность совместной работы нескольких устройств на шине. Но здесь нет ни "прозрачной" схемы адресации, ни механизма отложенного выполнения команд, ни, тем более, очереди запросов. И максимальное количество устройств на шине равняется всего двум, причем в каждый момент времени может работать только одно устройство, а другое вынуждено простаивать, ожидая завершения цикла обмена. Передав команду на чтение сектора, процессор непрерывно опрашивает специальный порт, в котором устройство выставляет флаг готовности данных, пословно (!) считываемых процессором через порт ввода/вывода. Впрочем, в однозадачных системах прошлого это не казалось дикостью, ведь переключиться на выполнение другой задачи процессор все равно не мог, поскольку задача была всего одна :).
Между тем, аппаратные мощности процессоров непрерывно росли. На IBM PC начали возникать первые многозадачные системы. Как следствие, во второй ревизии стандарта, получившей кодовое наименование ATA-2, появилась поддержка режима DMA. Теперь, передав команду на чтение сектора, процессор мог спокойно переключаться на другую задачу, перекладывая заботу о дисковой подсистеме на ATA-контроллер. В последующих ревизиях скорость передачи по физическому интерфейсу увеличилась аж до 100 Мб/с, появилась прозрачная логическая адресация (а вместе с ней и поддержка жестких дисков большого объема) и расширение ATA, названное ATAPI (ATA Packed Interface – пакетный интерфейс ATA, реализующий ту же самую схему обмена командными пакетами, что и SCSI).
Последние версии ATA обеспечивают контроль целостности передачи по интерфейсному кабелю, значительно увеличивая его пропускную способность, и включают в себя некоторую пародию на планировщик. Однако воспользоваться им все равно не удается, поскольку наличие второго устройства на шине многократно уменьшает скорость передачи данных, и для достижения адекватной производительности каждое устройство должно быть подключено к своему контроллеру, а таких контроллеров на подавляющем большинстве материнских плат всего два.
SATA
Смертельная схватка
Самый главный недостаток ATA/SATA-интерфейсов (который до сих пор не преодолен) – ограниченное количество подключаемых устройств. До тех пор пока ты довольствуешься одним жестким диском и одним приводом CD/DVD-ROM, никаких проблем не возникает. Но если ты захочешь воткнуть два винчестера, один CD-ROM, один CD-RW и один DVD-ROM, остается лишь посочувствовать.
Дисковые массивы, состоящие из нескольких винчестеров, на ATA-контроллерах нереализуемы в принципе, так как каждое устройство требует своего контроллера, а каждый контроллер своего канала DMA и IRQ. К тому же, отсутствие нормального планировщика отрицательно сказывается на производительности дисковой подсистемы (особенно на беспорядочных запросах) и усложняет ее программирование - при возникновении какой бы то ни было ошибки вся очередь сбрасывается, а это значит, что инициатору запросов требуется хранить ее копию, тщательно отслеживания все изменения.
Короче говоря, нормальных RAID-контроллеров ни под ATA-, ни под SATA-накопители нет и, по-видимому, никогда не будет. Модели, представленные на рынке, сильно смахивают на пионерские разработки и содержат большое количество фатальных ошибок, часто приводящих к необратимой порче данных. Пользоваться ими, даже в домашних условиях, категорически не рекомендуется. Разумеется, никакие физические законы не препятствуют созданию правильного RAID-контроллера с поддержкой ATA/SATA, но фирмы-производители просто не хотят вкладывать в это деньги. И не захотят до тех пор, пока в ATA/SATA не появится полноценный планировщик очереди запросов.
С другой стороны, для подключения SCSI-устройств требуется приобрести весьма дорогостоящий контроллер (от 100$). Те же, что интегрированы в материнские платы, в большинстве своем оставляют довольно мрачные впечатления. Причем различных электрических интерфейсов у SCSI намного больше, чем у ATA, и они плохо совместимы. Процедура подключения устройства тоже не из легких, и перемычек на плате контроллера гораздо больше одной. Неправильно же выставленные перемычки могут стоить и устройству, и контроллеру жизни. Установка SCSI-драйверов практически никогда не обходится без танцев с бубном :), и многие из этих драйверов содержат ошибки, приводящие к порче всех хранящихся данных. Словом, не надо пытаться настроить SCSI-устройство без надлежащей подготовки.
Для домашнего использования (если только количество подключенных устройств не очень велико) лучше всего использовать ATA/SATA-накопители. То же самое относится и к серверам, обслуживающим локальные сети небольших организаций. Высокопроизводительные рабочие станции и сервера с внушительными дисковыми массивами однозначно выбирают SCSI.
SCSI
SCSI расшифровывается как Small Computer System Interface (Системный Интерфейс Малых Компьютеров). Конструктивно представляет собой интеллектуальный контроллер, интегрированный непосредственно в само периферийное устройство. Поддерживает унифицированный набор управляющих команд, общий для всех устройств данного типа. Фактически SCSI-контроллер - это миникомпьютер, по мощности сопоставимый с Intel 80486. Появление SCSI было отчаянно смелым решением и огромным шагом вперед. До этого всякое устройство имело свою собственную систему команд, ориентированную на выполнение элементарных операций (включить/выключить двигатель, прочитать индексную метку, переместить головку на следующую дорожку и т.п.). Это не только затрудняло программирование, но и требовало переделки контроллера даже при незначительных конструктивных изменениях периферийного устройства.
ATA
ATA расшифровывается как Advanced Technology Attachment (соединение для AT-машин). История его возникновения тесно связна с фирмой IBM и компьютерами типа AT. Для преодоления ограничений, свойственных интерфейсу с MFM-накопителями, использовавшимися в IBM XT, компания поручила комитету X3T10 (www.t10.org) разработку нового индустриального стандарта. И комитет с ней справился на славу. Впрочем, никаких революционных идей он не предложил, ограничившись интеграцией стандартного контроллера жесткого диска непосредственно с самим устройством, соединенным параллельным шлейфом с не менее стандартной ISA шиной. Так вот почему ATA-контроллеры такие дешевые и простые! Фактически они включают в себя микросхему буферной памяти и дешифратор адреса. Разумеется, современные ATA-контроллеры существенно усложнились, но не настолько, чтобы сильно подорожать.
Кстати говоря, операционные системы семейства Windows абстрагируются от особенностей конкретного интерфейса, всегда работая с ATA-устройствами, как со SCSI. Специальный компонент системы, называемый SCSIlizer, автоматически транслирует SCSI-запросы в команды ATA-накопителя, что значительно упрощает его программирование. К сожалению, всеми вкусностями истинного SCSI воспользоваться так и не удастся, в частности, отсутствует возможность прямого обмена данными между ATA-накопителями, и приходится гонять их через центральный процессор.
SATA
SATA (Serial ATA – последовательный ATA) представляет собой новый электрический интерфейс на базе старого ATA. Теперь вместо широкого шлейфа используется тонкий шнурок, соединяющий одно-единственное устройство со своим портом. Максимальная длина шнурка и скорость передачи существенно увеличены, но для большинства пользователей это не имеет значения – прежней длины за глаза хватало. Что же до скорости передачи, винчестеры еще предыдущую ATA-ревизию не до конца использовали. Количество подключаемых устройств по-прежнему невелико (один SATA-порт – одно SATA-устройство, а таких портов на материнских платах раз-два и обчелся). В общем, со SCSI ему не тягаться.
Правда, появилась возможность горячей замены дисков, но для домашних компьютеров она ни к чему (разве что повыпендриваться перед девушкой). Если же оставить технические подробности в стороне и взглянуть на SATA с этической точки зрения, то худшего интерфейса, наверное, не существует. Созданный внутри корпоративного альянса, SATA является закрытым стандартом, и нормальная техническая документация доступна только членам этого общества. В открытом доступе находится лишь устаревшая информация, представляющая интерес только для студентов и журналистов, щеголяющих умными словами, но не объясняющих, что они обозначают. Тем не менее, никто не сомневается, что будущее принадлежит SATA. Ходят также непроверенные слухи, что секретное общество SATA сотрудничает с SAS комитетами по замене SCSI на SATA. Сплошной мрак, в общем...
IDE
IDE расшифровывается как Integrated Device Electronic (Интегрированное Электронное Устройство) и де-факто является синонимом ATA, хотя в девичестве обозначало не более чем интеграцию устройства с контроллером. Ныне переродилось в торговую марку, практически полностью вытеснившую аббревиатуру ATA из употребления. На сайте www.ata-atapi.com об этом прямо так и говорят: "ATA и ATAPI - действительные имена интерфейсов массовых дисковых накопителей, часто называемые как IDE и EIDE. IDE и EIDE, главным образом, используются продавцами, которые не ведают, чем торгуют, и журналистами, которые пишут, сами не знают о чем".
ATA и SCSI изначально были спроектированы для совершенно разных целей: ATA - для персоналок, SCSI - для серверов.
SCSI-диски, вопреки слухам, втыкать "на лету" нельзя. Эксперимент заканчивается потерей пациента :). Критичный недостаток ATA/SATA-интерфейсов - ограничение на количество одновременно подключаемых устройств.
Фактически SCSI-контроллер - это миникомпьютер, по мощности сопоставимый с Intel 80486.
SCSI тоже не без недостатков: сложно устанавливать SCSI-драйвера и настраивать SCSI-устройства. К тому же, необходим недешевый SCSI-контроллер.
Не покупай SCSI-контроллер, интегрированный в материнку. Как показывает практика, обычно это полная ерунда.